{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "3acfb158",
   "metadata": {},
   "source": [
    "## 3.1 深度学习环境配置：CUDA+Anaconda的安装\n",
    "\n",
    "俗话说工欲善其事，必先利其器，在我们进行深度学习的实践之前，先动手把开发环境搭建起来。\n",
    "\n",
    "本节的目标就是安装好**CUDA**和**Anaconda**。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b7819d8e",
   "metadata": {},
   "source": [
    "### 3.1.1 CUDA简介\n",
    "CUDA（Compute Unified Device Architecture）是一个并行计算架构，由英伟达（NVIDIA）开发，可在其显卡上执行计算任务；可以通过将复杂的计算任务分配到多个处理器上进行并行处理来提高计算速度；主要用于科学计算、人工智能和游戏开发等领域。\n",
    "\n",
    "CUDA需要使用特定的硬件和软件才能使用。首先，你需要拥有支持CUDA的显卡，通常是英伟达的GeForce或Quadro系列显卡，AMD的不行，装不了CUDA\n",
    "\n",
    "这里注意:不要随意下载版本安装，我们要根据电脑显卡驱动的版本. 安装对应支持的CUDA版本，否则会有不兼容的情况。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "478cf222",
   "metadata": {},
   "source": [
    "### 3.1.2  查看电脑显卡型号是否支持CUDA的安装\n",
    "\n",
    "[点击此链接，查看电脑显卡型号是否支持CUDA的安装](https://developer.nvidia.com/zh-cn/cuda-gpus)\n",
    "\n",
    "<img src=\"./images/3-1-1.png\" width=\"80%\" ></img>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4d798b71",
   "metadata": {},
   "source": [
    "### 3.1.3 查看电脑显卡的驱动版本\n",
    "\n",
    "上一步中确认电脑显卡型号支持CUDA的安装，这一步需要查看自己电脑的显卡驱动版本。具体查看方法如下：\n",
    "\n",
    "在电脑桌面 **单击鼠标右键**， 然后选择 **【NVIDIA控制面板】**， 在面板里点击 **【系统信息】** 查看， 就能看到驱动程序版本信息了。\n",
    "\n",
    "截图中可以看到我的显卡驱动版本是472.12\n",
    "\n",
    "<img src=\"./images/3-1-2.png\" width=\"80%\" ></img>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f7d75f44",
   "metadata": {},
   "source": [
    "### 3.1.4 根据显卡驱动版本下载支持的CUDA版本\n",
    "上一步中，查看了自己电脑的显卡驱动版本。在这一步，我们将根据显卡驱动的版本到[英伟达CUDA版本信息中查看](https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html),找到最高支持的CUDA版本。\n",
    "\n",
    "由于我的驱动版本是472 .12, 所以我最高能安装的CUDA版本就是11.4.0\n",
    "\n",
    "<img src=\"./images/3-1-3.png\" width=\"80%\" ></img>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fe3545d3",
   "metadata": {},
   "source": [
    "知道了支持的最高CUDA版本，接下来，打开[CUDA下载地址,下载对应版本的CUDA](https://developer.nvidia.com/cuda-toolkit-archive).\n",
    "\n",
    "我这里下载CUDA Toolkit 11.4.0\n",
    "\n",
    "<img src=\"./images/3-1-4.png\" width=\"80%\" ></img>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "204e7265",
   "metadata": {},
   "source": [
    "点击链接，进入到下载页面，选择对应的选项后， 点击Download进行下载。\n",
    "\n",
    "<img src=\"./images/3-1-5.png\" width=\"80%\" ></img>\n",
    "\n",
    "下载完成后，双击下载的exe文件进行安装， 一路下一步，无脑安装。 \n",
    "\n",
    "默认安装在C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA，当然如果你想自定义的话要记住你选择的安装路径。 到此CUDA安装就完成了。\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2c3bb480",
   "metadata": {},
   "source": [
    "如果显卡驱动版本过低，你也可以到[英伟达官网的驱动下载页面](https://www.nvidia.com/download/index.aspx?lang=en-us)检查自己电脑的显卡驱动是否可以更新。\n",
    "\n",
    "<img src=\"./images/3-1-6.png\" width=\"80%\" ></img>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d65788d7",
   "metadata": {},
   "source": [
    "### 3.1.5 检查CUDA是否安装成功\n",
    "\n",
    "我们打开cmd 在命令行中输入 nvcc -V 然后回车 成功的话就会返回CUDA的版本号了.\n",
    "\n",
    "<img src=\"./images/3-1-7.png\" width=\"60%\" ></img>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "29102ced",
   "metadata": {},
   "source": [
    "### 3.1.6 安装Anaconda\n",
    "\n",
    "Anaconda是一个用于科学计算、数据分析和机器学习的Python发行版。它包含了许多常用的科学计算、数据分析和机器学习库，如NumPy、Pandas、Matplotlib、SciPy、Scikit-learn等，可以通过一个简单的包管理器（conda）安装和管理。\n",
    "\n",
    "Anaconda的主要优点是它可以帮助你节省大量的安装和配置时间，并且还可以方便地创建和管理多个独立的Python环境，使你可以使用不同版本的Python库和工具。同时还提供了许多用于数据分析和机器学习的工具，如Jupyter Notebook、Spyder等。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fe76ec13",
   "metadata": {},
   "source": [
    "打开[官方网站地址](https://www.anaconda.com/products/distribution)，选择对应的系统，进行下载。\n",
    "\n",
    "<img src=\"./images/3-1-8.png\" width=\"80%\" ></img>\n",
    "\n",
    "我这里以windows电脑为例，下载完成后，双击exe文件即可安装，一路下一步。\n",
    "\n",
    "安装位置这里，默认是安装到c盘，因为Anaconda中的库占挺大空间的，这里我改了安装的位置。如果你要更改的话，注意**位置的路径中不要包含空格或者中文**，否则后面使用中会遇到麻烦\n",
    "\n",
    "如果你的网络不好，很可能会遇到官网访问太慢的问题，可以使用[清华镜像网站](https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/),这个速度很快\n",
    "\n",
    "找到对应的系统版本进行下载即可。\n",
    "\n",
    "安装的过程会花费一些时间，等到进度条跑到头，说明安装完毕。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e74f9269",
   "metadata": {},
   "source": [
    "安装完成后，我们来手动配置一下环境变量：找到桌面的 **电脑图标**->右键 选择**属性**，然后选择 **高级系统设置**；\n",
    "\n",
    "在弹出的菜单中 选择 **高级**-> **环境变量**\n",
    "\n",
    "在 **系统变量**中找到 **Path**,  双击在弹出的对话框中 选择**新建**,将 **anaconda的安装路径以及 anaconda目录下的Scripts路径**都添加到**path环境目录**中.注意：要 依次点击 确定将对话框都关闭环境变量才会生效.\n",
    "\n",
    "<img src=\"./images/3-1-9.png\" width=\"80%\" ></img>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9bd40b10",
   "metadata": {},
   "source": [
    "### 3.1.7 检查Anaconda是否安装成功"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c3d56794",
   "metadata": {},
   "source": [
    "上面的操作都没有问题的话，接下来，检查Anaconda是否安装成功。\n",
    "\n",
    "打开cmd命令行窗口，输入：conda -V   查看conda的版本信息\n",
    "\n",
    "输入：conda  env list   查看我们的虚拟环境\n",
    "\n",
    "<img src=\"./images/3-1-10.png\" width=\"60%\" ></img>\n",
    "\n",
    "如果都没有问题，说明我们上一步的环境变量配置成功。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ad3a7267",
   "metadata": {},
   "source": [
    "### 3.1.8 配置Anaconda的安装包下载源\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4679ebaf",
   "metadata": {},
   "source": [
    "因为conda默认使用的是国外的下载地址，常常导致下载一些包的时候非常慢。所以我们来更换一下anaconda的安装包下载源。\n",
    "\n",
    "打开[Anaconda镜像使用帮助网址](https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/)，按照下面操作进行：\n",
    "\n",
    "<img src=\"./images/3-1-11.png\" width=\"80%\" ></img>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f960e4b0",
   "metadata": {},
   "source": [
    "这里注意：如果在后面下载包的时候仍然失败的话，将https换成http即可。\n",
    "\n",
    "<img src=\"./images/3-1-12.png\" width=\"80%\" ></img>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3de7e424",
   "metadata": {},
   "source": [
    "到此开发环境就已经搭建完成，下一节来讲解conda的实用命令。\n",
    "\n",
    "[Next：conda的实用命令](./3-2%20conda%E5%AE%9E%E7%94%A8%E5%91%BD%E4%BB%A4.ipynb)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ed0decfe",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.10"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
